package cobots.swarm.props;


public class PropertiesClass {
       
        public static int numLeaders =3;                        // Number of leader robots in the swarm
        public static int numFollowers =180;                    // Number of follower robots in the swarm
        public static int g =700;                               // ?
        public static int Fmax=1;                               // maximum force (velocity)
        public static int SimStep=1;                                   // time advance between simulation steps
        public static int Iradius=10;                              // initial (growing) radius for team members attraction
        public static double Grate=0.05;                        // The rate at which the radius grows
        public static double Tprob=0.005;                       // Probability of adding 1 new target at each simulation step
        public static double Cprob=0.75;                        // Communication success probability        
        public static int maxTime=10000;                        // After this time this number of time steps, the simulator terminates
       // public static boolean returnToCenter= true;             // If true, idle movement includes attraction to the center
       // public static boolean idleWhenNoComm= false;             // If false the robots stop when they have no communication with leader, otherwise they do idle movement
        public static double randomBehaviorProb=0.25;    // The probability of computing a new random heading / speed
        public static double turnRandomization=0.5;             // When new heading is computed, how much it will vary in average
        public static double speedRandomization=0.5;    // Same as above but for speed
       
        public static int Rmean=10000;                                   // The mean value for repulsion radius
        public static int teamMembers=9;                        // Number of follower robots per team (in fixed topology)
        public static boolean fixedRadius= false;            // Either the leader attracts followers on the way or not
        public static boolean fixedTopology= false;           // If true, the followers of each leader are randomly selected in the beginning of the simulation
       
   // public static boolean Repulsion= false;          // Use repulsion to control robots
    public static int RepulsionRadius=5;           // Repulsion radius to use in repulsion mode
    public static double Oprob=0.5;                 // Communication probability for commands sent by the operator
   
    public static int Width=300;                    // The width of the world
    public static int Height=300;                   // the world's height
    public static double SenseRadius=40;            // Maximum distance for leaders to detect followers
    public static boolean PathFollowing=true;       // Use a user-defined path (point to point)
    public static int FadingRate=500;               // the number of simulation steps it takes for a robot to disappear


        public static int getteamMembers()
       {
        return        teamMembers;
       }
        public static boolean getfixedRadius()
       {
        return fixedRadius ;
       }
      //  public static boolean getfixedTopology()
       {
      //         return fixedTopology ;
       }
       
    //    public static boolean getRepulsion()
   /*    {
               return Repulsion ;
       }*/
    public static int getRepulsionRadius()
    {
       return RepulsionRadius;
    }
    public static double getOprob()
    {
       return Oprob;
    }
   
    public static int getWidth()
    {
       return Width;
    }
    public static int getHeight()
    {
       return Height;
    }
    public static double getSenseRadius()
    {
       return SenseRadius;
    }
  
    public static boolean getPathFollowing()
    {
       return PathFollowing;
    }
    public static int getFadingRate()
    {
    return FadingRate;     
    }

    public static int getnumLeaders()
    {
       return numLeaders;
    }
   
    public static int getnumFollowers()
    {
       return numFollowers;
    }
   
    public static int getg()
    {
       return g;
    }
   
    public static int getFmax()
    {
       return Fmax;
    }
   
   
    public static int getSimStep()
    {
       return SimStep;
    }
   
    public static int getIradius()
    {
       return Iradius;
    }
   
    public static int getmaxTime()
    {
       return maxTime;
    }
   
    public static double getGrate()
    {
       return Grate;
    }
   
   
    public static double getCprob()
    {
       return Cprob ;
    }
   
    public static double getTprob()
    {
       return Tprob;
    }
   
    //public static boolean getreturnToCenter()
    {
     //  return returnToCenter;
    }
   
 //   public static boolean getidleWhenNoComm()
    {
   //    return idleWhenNoComm;
    }
   
    public static double getrandomBehaviorProb()
    {
       return randomBehaviorProb;
    }
   
    public static double getturnRandomization()
    {
       return turnRandomization;
    }
   
    public static double getspeedRandomization()
    {
       return speedRandomization;
    }
   
    public static int getRmean()
    {
       return Rmean;
    }
   
   // public static int getRdeviation()
    {
  //     return Rdeviation;
    }
   
  
}
